package com.bdqn.aop;

import org.apache.log4j.Logger;
import org.aspectj.lang.JoinPoint;

import java.util.Arrays;

/**
 * ServiceLogger
 *
 * @author LILIBO
 * @since 2022-10-09
 */
public class ServiceLogger {

    private Logger logger = Logger.getLogger(ServiceLogger.class);

    /**
     * 前置增强
     *
     * @param jp
     */
    public void before(JoinPoint jp) {
        // 在调用方法之前做一些事情 例如：参数判断
        logger.debug("【前置增强】调用" + jp.getTarget() + "的" + jp.getSignature().getName() + "方法。方法参数：" + Arrays.toString(jp.getArgs()));
    }

    /**
     * 后置增强
     *
     * @param jp
     */
    public void afterReturning(JoinPoint jp, Object result) {
        // 在调用方法之后做一些事情 例如：清理资源
        logger.debug("【后置增强】调用 " + jp.getTarget() + " 的 " + jp.getSignature().getName() + " 方法，方法的返回值：" + result);
    }
}
